home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / etc / init.d / crypto-loop < prev    next >
Text File  |  2006-04-25  |  2KB  |  66 lines

  1. #!/sbin/runscript
  2. # Copyright 1999-2005 Gentoo Foundation
  3. # Distributed under the terms of the GNU General Public License v2
  4. # $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/files/crypto-loop.initd,v 1.1 2005/04/29 23:54:25 vapier Exp $
  5.  
  6. depend() {
  7.      need checkroot modules
  8.      before localmount
  9. }
  10.  
  11. start() {
  12.     local status="0"
  13.  
  14.     ebegin "Starting crypto loop devices"
  15.  
  16.     if [[ -e /etc/conf.d/crypto-loop ]] ; then
  17.         egrep "^loop" /etc/conf.d/crypto-loop | \
  18.         while read loopline ; do
  19.             eval ${loopline}
  20.  
  21.             local configured=$(awk -v MOUNT="${device}" \
  22.                 '($2 == MOUNT) { print "yes" }' /proc/mounts)
  23.  
  24.             if [[ ${configured} != "yes" ]] ; then
  25.                 einfo "  Loop ${loop} on device ${device} (cipher ${cipher}, key size ${keysize}): "
  26.  
  27.                 if [[ -n ${hash} ]] ; then
  28.                     /usr/sbin/hashalot -n ${keysize} ${hash} </dev/tty|\
  29.                     /sbin/losetup -p 0 -e ${cipher}-${keysize} ${loop} ${device} ${other}
  30.                 else
  31.                     /sbin/losetup -e ${cipher}-${keysize} ${loop} ${device} ${other}
  32.                 fi
  33.  
  34.                 if [[ $? -ne 0 ]] ; then
  35.                     ewarn "Failure configuring ${loop}.  Skipping."
  36.                     status=1
  37.                 fi
  38.             else
  39.                 ewarn "  Loop ${loop} on device ${device} are already configured"
  40.             fi
  41.         done
  42.     fi
  43.     ewend ${status} "Failed to start some loop devices."
  44.  
  45.     # We do not fail if some loop devices did not start ...
  46.     return 0
  47. }
  48.  
  49. stop() {
  50.     local status="0"
  51.     for loop in $(ls /dev/loop[0-9]) ; do
  52.         losetup ${loop} &> /dev/null
  53.         if [[ $? == 0 ]] ; then
  54.             umount ${loop} &>/dev/null
  55.             if ! /sbin/losetup -d ${loop} &> /dev/null ; then
  56.                 ewarn "Failure deconfiguring ${loop}."
  57.                 status=1
  58.             fi
  59.         fi
  60.     done
  61.     ewend ${status}
  62. }
  63.  
  64.  
  65. # vim:ts=4
  66.